from schemainspect import create_inspector, Inspector
from schemainspect.sqla import SQLAModelGenerator
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 设置数据库连接字符串
db_uri = 'mysql+pymysql://root:root@127.0.0.1:3306/dataSync'

# 创建数据库引擎
engine = create_engine(db_uri)

# 创建一个会话工厂
Session = sessionmaker(bind=engine)

# 创建一个基类
Base = declarative_base()

# 创建一个检查器
inspector: Inspector = create_inspector(engine)

# 创建一个模型生成器
generator = SQLAModelGenerator(inspector, base_class=Base)

# 生成模型
models = generator.generate_models()

# 输出模型到文件
with open('models.py', 'w') as f:
    f.write(generator.as_string(models))

# 创建会话
session = Session()

# 示例：查询第一个模型中的第一条记录
# 注意：这里假设 models 字典的第一个键是你的模型名称
first_model = next(iter(models.values()))
first_record = session.query(first_model).first()
print(first_record)
